import numpy as np
from mopo.mask.base import *

POS_ABS = [1, 2]
POS_RELA = [3, 4, 5]
VEL_ABS = [6, 7, 8]
VEL_RELA = [9, 10, 11]
ACTION_DIM = 3

oracle_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],  # reward
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # pos-slide-z
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # pos-hinge-y
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # pos-joint1
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # pos-joint2
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # pos-joint3
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # vel-slide-x
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # vel-slide-z
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # vel-hinge-y
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],  # vel-joint1
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],  # vel-joint2
                             [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]], dtype=np.int8)  # vel-joint3
causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                             [0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, ],
                             [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, ],
                             [0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, ],
                             [1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, ],
                             [1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, ],
                             [0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, ],
                             [0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, ],
                             [0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, ],
                             [1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, ],
                             [1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, ],
                             [0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, ]], dtype=np.int8)
dense_mask = np.ones((12, 14), dtype=np.int8)

best_random_to_medium_feature_mask = np.array([[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, ],
                                                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, ],
                                                    [1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, ],
                                                    [0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, ], ], dtype=np.int8)
best_random_to_medium_replay_feature_mask = np.array([[0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, ],
                                                           [0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, ],
                                                           [0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                           [1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, ],
                                                           [1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, ],
                                                           [0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, ],
                                                           [1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, ],
                                                           [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                           [0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                           [0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],
                                                           [1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, ],
                                                           [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ]],
                                                          dtype=np.int8)
loose_random_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                          [0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1],
                                          [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                          [1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
                                          [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                          [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1],
                                          [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                          [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                          [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                          [1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1],
                                          [1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1],
                                          [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=np.int8)
tight_random_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                          [0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1],
                                          [0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1],
                                          [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
                                          [0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1],
                                          [1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1],
                                          [0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1],
                                          [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
                                          [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1],
                                          [0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1],
                                          [0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1],
                                          [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1]], dtype=np.int8)
# loose_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1]], dtype=np.int8)

loose_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=np.int8)

# tight_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
#                                                  [0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1],
#                                                  [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
#                                                  [1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1],
#                                                  [0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
#                                                  [1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
#                                                  [0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1],
#                                                  [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1]], dtype=np.int8)

tight_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
                                                 [1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1],
                                                 [1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
                                                 [1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1],
                                                 [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
                                                 [1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
                                                 [1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1],
                                                 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=np.int8)

loose_medium_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1],
       [0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1],
       [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
       [0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1]], dtype=np.int8)


tight_medium_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0],
       [0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
       [1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1],
       [0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
       [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
       [1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1],
       [0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1]], dtype=np.int8)



binary_04_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1]], dtype=np.int8)
binary_03_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1],
       [1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1],
       [1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1]], dtype=np.int8)
binary_02_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
       [0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1]], dtype=np.int8)
binary_01_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
       [0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1],
       [0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1]], dtype=np.int8)
binary_005_medium_replay_causal_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
       [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1],
       [1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0],
       [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1],
       [0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1]], dtype=np.int8)


binary_04_medium_replay_causal_dense_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=np.int8)
binary_03_medium_replay_causal_dense_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1],
       [1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1],
       [1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=np.int8)
binary_02_medium_replay_causal_dense_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
       [1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
       [0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=np.int8)
binary_01_medium_replay_causal_dense_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
       [0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=np.int8)
binary_005_medium_replay_causal_dense_mask = np.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
       [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0],
       [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1],
       [1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1],
       [0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0],
       [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=np.int8)